﻿

namespace StatePattern;

/// <summary>
/// 这个类集成了太多的功能，非常不稳定，任何一个状态的改变或增加减少状态都会修改这个类，而且还需要测试下其他的方法看看有没有修改，但是如果把功能都拆分到不同的类中就不一样了，
/// </summary>
internal class TrafficLight
{
    public LightColor LightColor { get; set; }

    public void Show()
    {
        if (LightColor == LightColor.Green)
        {
            Console.WriteLine("绿灯行");
        }
        else if (LightColor == LightColor.Yellow)
        {
            Console.WriteLine("黄灯请小心");
        }
        else if (LightColor == LightColor.Red)
        {
            Console.WriteLine("红灯停");
        }
    }

    public void Turn()
    {
        if (LightColor == LightColor.Green)
        {
            LightColor = LightColor.Yellow;
        }
        else if (LightColor == LightColor.Yellow)
        {
            LightColor= LightColor.Red;
        }
        else if (LightColor == LightColor.Red)
        {
            LightColor=LightColor.Green;
        }
    }
}

public enum LightColor
{
    Red,
    Green,
    Blue,
    Yellow,
}
